<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class intencao extends CI_Controller {
    private $sessao;

    function __construct(){
        parent::__construct();
        $this->load->model("CategoriaModel");
        $this->load->model("ClienteModel");
        $this->load->model("IntencaoModel");
        $this->load->model("Selects");
        $this->load->model("Log");

        //Verifica se está logado
        $this->load->helper("auth");
        //$this->load->helper("mail");
        $this->sessao = a_logado();
    }
    
    public function index( $mensagem = ""){
        $this->load->helper("form");
        $this->load->helper("html");
        $this->load->library("form_validation");

        $intencoes = $this->Selects->listarIntencao(timestamp());
        //print_r($intencaos->result());

        if( $intencoes != false ) :
            $linha = "";
            $lista = "";
            foreach( $intencoes->result() as $intencao ) :

                $paisCateg = pais_categ_admin($intencao->idCategoria);

                if ($linha == 0)
                    $lista .= "<tr class=\"impar\">\n\t\t";
                else
                    $lista .= "<tr>\n\t\t";
                
                if($intencao->quantidade_total < (80/100)*$intencao->min_intencao)
                    $disparo = "images/tabelas/vermelho.png";
                elseif($intencao->quantidade_total >= $intencao->min_intencao)
                    $disparo = "images/tabelas/verde.png";
                else
                    $disparo = "images/tabelas/amarelo.png";
                //echo $disparo;

                //$lista .= "<td>$paisCateg</td>\n\t";
                $lista .= "<td>".anchor("admin/intencao/categoria/$intencao->idCategoria",$intencao->categ)."</td>\n\t";
                $lista .= "<td><center>".$intencao->num_cadastros."</center></td>\n\t";
                $lista .= "<td><center>".$intencao->quantidade_total."</center></td>\n\t";
                $lista .= "<td><center>".img($disparo)."</center></td>\n\t";
                $lista .= "</tr>\n";

                if ($linha == 0 ) $linha = 1;
                else $linha = 0;
            endforeach;

        else :
            $lista = "<tr>\n\t";
            $lista .= "<td colspan=\"3\">Não há intenções cadastradas</td>\n";
            $lista .= "</tr>\n";

        endif;

        if($mensagem == "ja_existente") $mensagem = "\nVocê já tem esse produto como favorito!\n";
        elseif($mensagem == "sucesso") $mensagem = "\n Operação realizada com sucesso! \n";
        else $mensagem = "";

        $titulo = "Gerenciamento de Intenções";
        if($this->input->post("datamax")){
                if($this->input->post("datamin"))
                    $titulo .= " de ".data_brasileira($this->input->post("datamin"));
                $titulo .= " até ".data_brasileira($this->input->post("datamax"));
        }
        elseif($this->input->post("datamin"))
                $titulo .= " de ".data_brasileira($this->input->post("datamin"))." até Hoje";
        
        $dados = array(
             "titulo" => $titulo,
             "lista" => $lista,
             "mensagem" => $mensagem
            );

        $main = array(
            "dados" => $dados,
            "link" => "admin/listar_intencao_view",
            );
        $this->load->view("template",$main);
    }
    
    public function categoria( $idCategoria = "" ,$mensagem = ""){
        $this->load->helper("form");
        $this->load->library("form_validation");
        $this->load->helper("html");

        $intencoes = $this->Selects->getIntencaoCategoria($idCategoria, timestamp_time($this->input->post("datamin")),timestamp_time($this->input->post("datamax")));
        //print_r($intencaos->result());
        if( $intencoes != false ) :
            $linha = "";
            $lista = "";
            $this->load->helper("html");
            $delete = array('src'=>"images/tabelas/delete.png", 'height' => '24px', "style" => "border:0;");
            foreach( $intencoes->result() as $intencao ) :

                if ($linha == 0)
                    $lista .= "<tr class=\"impar\">\n\t\t";
                else
                    $lista .= "<tr>\n\t\t";
                $lista .= "<td>".anchor("admin/cliente/perfil/$intencao->idCliente",$intencao->cnome)."</td>\n\t";
                $lista .= "<td>".anchor("admin/usuario/editar/$intencao->idCliente/$intencao->idUsuario",$intencao->unome)."</td>\n\t";
                $lista .= "<td>".anchor("admin/intencao/editar/$intencao->idIntencao",$intencao->inome)."</td>\n\t";
                $lista .= "<td>".data_brasileira($intencao->data)."</td>\n\t";
                $lista .= "<td align='center'>".anchor("admin/intencao/delete/$intencao->idIntencao/$idCliente", img($delete))."</td>\n\t";

                if ($linha == 0 ) $linha = 1;
                else $linha = 0;
            endforeach;

        else :
            $lista = "<tr>\n\t";
            $lista .= "<td colspan=\"3\">Não há intenções cadastradas</td>\n";
            $lista .= "</tr>\n";

        endif;

        if($mensagem == "sucesso") $mensagem = "\n Operação realizada com sucesso! \n";
        else $mensagem = "";

        $titulo = "Intenções da Categoria ". $intencao->categ;
        if($this->input->post("datamax")){
                if($this->input->post("datamin"))
                    $titulo .= " de ".data_brasileira($this->input->post("datamin"));
                $titulo .= " até ".data_brasileira($this->input->post("datamax"));
        }
        elseif($this->input->post("datamin"))
                $titulo .= " de ".data_brasileira($this->input->post("datamin"))." até Hoje";

        $dados = array(
             "titulo" => $titulo,
             "lista" => $lista,
             "mensagem" => $mensagem,
             "idCategoria" => $idCategoria
            );

        $main = array(
            "dados" => $dados,
            "link" => "admin/listar_intencao_categoria_view",
            );
        $this->load->view("template",$main);
    }


    public function editar($idIntencao = ""){

        if($idIntencao == "") show_404 ();

        $intencao = $this->IntencaoModel->getIntencao($idIntencao);
        if($intencao == false) show_eror("Intenc&atildeo n&atilde;o encontrada");

        $this->load->helper("form");
        $this->load->library("form_validation");

        $categoriasArray = $this->CategoriaModel->getCategoriaAtualPais($intencao->idCategoria);
        if ($categoriasArray == false) show_404 ();
        $max = count($categoriasArray);
        //print_r($categoriasArray);
        if( $max > 0 ) {
            $categorias = array();
            for($i=$max-1, $j=0; $i>-1 ; $j++, $i--){
                if($j==0)
                    $row = $this->CategoriaModel->getCategoriaNivel($j);
                else
                    $row = $this->CategoriaModel->getCategoriaFilhos ($categoriasArray[$i+1]->idCategoria);
                if( $row != false) {
                        if($j==0)
                            $categorias[$j] .= "<label> <p>Categoria</p>";
                        else
                            $categorias[$j] .= "<label><p style=\"float: left\">Sub-Nivel ".($max-$i)." </p>";
                        $categorias[$j] .= "<select name=\"categoria[]\" id=\"categoria_".($max-$i)."\" onchange=\"teste(this)\">";
                        $categorias[$j] .= "<option value=\"0\">--Selecione--</option>";
                    foreach($row->result() as $categoria) {
                        if($categoria->idCategoria ==  $categoriasArray[$i]->idCategoria){
                            $categorias[$j] .= "<option value=\"$categoria->idCategoria\" selected=\"selected\">$categoria->nome</option>\n";
                            }
                        else
                            $categorias[$j] .= "<option value=\"$categoria->idCategoria\">$categoria->nome</option>\n";

                    }
                    $categorias[$j] .= "</select><br clear=\"left\"></label>";
                }
                else show_error ("Erro nas categorias");
            }
        }

        $dados = array(
            "titulo" => "Edição de Intenção",
            "erro" => "",
            "categorias" => $categorias,
            "intencao" => $intencao
            );

        $main = array(
            "dados" => $dados,
            "link" => "admin/edit_intencao_view",
            );


        //Validação dos campos
        $this->form_validation->set_rules('nome', 'Nome', 'min_length[2]');
        $this->form_validation->set_rules('descricao', 'Descricao', 'required|min_length[3]');
        $this->form_validation->set_rules('data', 'Data Prevista', 'required');
        $this->form_validation->set_rules('quantidade', 'Quantidade', 'required|numeric');
        $this->form_validation->set_rules('categoria[]', 'Categoria', 'callback_select_check');


        if ($this->form_validation->run() == false) {
            $this->load->view('template', $main);
        }
       else{
            $campos = array(
                "nome" => $this->input->post("nome"),
                "descricao" => $this->input->post("descricao"),
                "data" => timestamp($this->input->post("data")),
                "quantidade" => $this->input->post("quantidade")
            );
            $categoria = $this->input->post("categoria");
            $campos['idCategoria'] = $categoria[count($categoria)-1];

            $idIntencao = $this->IntencaoModel->update($idIntencao,$campos);

            $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "editou", "intencao", $idIntencao);
            redirect("admin/intencao/index/sucesso");

        }
    }

    public function cliente($idCliente = "", $mensagem = ""){

        $this->load->helper("form");
        $this->load->library("form_validation");
        $cliente = $this->ClienteModel->getCliente($idCliente);
        if($cliente == false) show_404 ();
        $intencoes = $this->Selects->getIntencaoCliente($idCliente, timestamp_time($this->input->post("datamin")),timestamp_time($this->input->post("datamax")));

        //print_r($intencaos->result());

        if( $intencoes != false ) :
            $linha = "";
            $lista = "";
            foreach( $intencoes->result() as $intencao ) :

                $paisCateg = pais_categ_admin($intencao->idCategoria);

                if ($linha == 0)
                    $lista .= "<tr class=\"impar\">\n\t\t";
                else
                    $lista .= "<tr>\n\t\t";
                $lista .= "<td>$paisCateg</td>\n\t";
                $lista .= "<td>".anchor("admin/usuario/editar/$intencao->idUsuario",$intencao->unome)."</td>\n\t";
                $lista .= "<td>".anchor("admin/intencao/editar/$intencao->idIntencao",$intencao->inome)."</td>\n\t";
                $lista .= "<td>$intencao->descricao</td>\n\t";
                $lista .= "<td>".anchor("admin/intencao/delete/$intencao->idIntencao/$idCliente", "X")."</td>\n\t";

                if ($linha == 0 ) $linha = 1;
                else $linha = 0;
            endforeach;

        else :
            $lista = "<tr>\n\t";
            $lista .= "<td colspan=\"3\">Não há intenções cadastradas</td>\n";
            $lista .= "</tr>\n";

        endif;

        if($mensagem == "ja_existente") $mensagem = "\nVocê já tem esse produto como favorito!\n";
        elseif($mensagem == "sucesso") $mensagem = "\n Operação realizada com sucesso! \n";
        else $mensagem = "";

        $dados = array(
            "titulo" => "Gerenciamento de Intenções",
            "lista" => $lista,
            "mensagem" => $mensagem
            );

        $main = array(
            "dados" => $dados,
            "link" => "admin/listar_intencao_cliente_view",
            );
        $this->load->view("template",$main);
    }

    
   public function cadastrar(){

        $this->load->helper("form");
        $this->load->library("form_validation");

        $row = $this->CategoriaModel->getCategoriaNivel(0);
        if( $row->num_rows() > 0 ) :
            foreach($row->result() as $categoria) {
                $categorias .= "<option value=\"$categoria->idCategoria\"". set_select("categoria_1", $categoria->nome). ">$categoria->nome</option>\n";
            }
        else :
            break;
        endif;

        $dados = array(
            "titulo" => "Cadastre seu Interesse de Compra",
            "erro" => "",
            "categorias" => $categorias,
            "cap" => $cap,
            "captcha_fail" => ""
            );

        $main = array(
            "dados" => $dados,
            "link" => "usuario/u_cad_intencao_view",
            );


        //Validação dos campos
        $this->form_validation->set_rules('nome', 'Nome', 'min_length[2]');
        $this->form_validation->set_rules('descricao', 'Descricao', 'required|min_length[3]');
        $this->form_validation->set_rules('data', 'Data', 'required');
        $this->form_validation->set_rules('categoria[]', 'Categoria', 'callback_select_check');

        if ($this->form_validation->run() == false) {           
            $this->load->view('template', $main);
        }
        else {
            $campos = array(
                "nome" => $this->input->post("nome"),
                "idUsuario" => $this->sessao->idUsuario,
                "descricao" => $this->input->post("descricao"),
                "data" => $this->input->post("data"),
                "dataCadastro" => timestamp()
            );
            $categoria = $this->input->post("categoria");
            $campos['idCategoria'] = $categoria[count($categoria)-1];

            $idInserido = $this->IntencaoModel->inserir($campos);

            $this->Log->inserir(tipo_usuario(), id_tipo_usuario(),"cadastrou", "intencao", $idInserido);
            redirect("home/index/sucesso");
        }
    }


     public function delete($idIntencao = "", $idCliente = ""){
        if($idIntencao == "") show_error("Você precisa selecionar uma Intencao!");

        $this->IntencaoModel->delete($idIntencao);
        $this->Log->inserir(tipo_usuario(), id_tipo_usuario(),"deletou", "intencao", $idIntencao);

        redirect("admin/intencao/cliente/$idCliente/sucesso");
    }


    /**
     * Método para validar campos do tipo select
     *
     * @param <type> $str
     * @return <type>
     */
    function select_check($str){
        if ($str == '0') :
            $this->form_validation->set_message('select_check', 'O campo %s não pode estar em branco');
            return FALSE;

        else :
            return TRUE;

        endif;
    }


}


